[INFO] fetching crate sq3_parser 0.3.3...
[INFO] testing sq3_parser-0.3.3 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] extracting crate sq3_parser 0.3.3 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate sq3_parser 0.3.3
[INFO] finished tweaking crates.io crate sq3_parser 0.3.3
[INFO] tweaked toml for crates.io crate sq3_parser 0.3.3 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sq3_parser 0.3.3 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d124e6b2366dcbf8572c4918bb4fc46211371c742d88e3bb7d580cf50ba66db2
[INFO] running `Command { std: "docker" "start" "-a" "d124e6b2366dcbf8572c4918bb4fc46211371c742d88e3bb7d580cf50ba66db2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d124e6b2366dcbf8572c4918bb4fc46211371c742d88e3bb7d580cf50ba66db2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d124e6b2366dcbf8572c4918bb4fc46211371c742d88e3bb7d580cf50ba66db2", kill_on_drop: false }`
[INFO] [stdout] d124e6b2366dcbf8572c4918bb4fc46211371c742d88e3bb7d580cf50ba66db2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f010e90d319522f72aa71d68ae37f86a4f390c794fa7a62dcf9557aaf32a19e7
[INFO] running `Command { std: "docker" "start" "-a" "f010e90d319522f72aa71d68ae37f86a4f390c794fa7a62dcf9557aaf32a19e7", kill_on_drop: false }`
[INFO] [stderr]    Compiling sq3_parser v0.3.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling sq3_derive v0.3.3
[INFO] [stdout] warning: unknown lint: `non_exhaustive_omitted_patterns`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `non_exhaustive_omitted_patterns` lint is unstable
[INFO] [stdout]   = note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `must_not_suspend`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `must_not_suspend` lint is unstable
[INFO] [stdout]   = note: see issue #83310 <https://github.com/rust-lang/rust/issues/83310> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(must_not_suspend)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `multiple_supertrait_upcastable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `multiple_supertrait_upcastable` lint is unstable
[INFO] [stdout]   = note: see issue #150833 <https://github.com/rust-lang/rust/issues/150833> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(multiple_supertrait_upcastable)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `lossy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `lossy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `fuzzy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `fuzzy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `non_exhaustive_omitted_patterns`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `non_exhaustive_omitted_patterns` lint is unstable
[INFO] [stdout]   = note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `must_not_suspend`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `must_not_suspend` lint is unstable
[INFO] [stdout]   = note: see issue #83310 <https://github.com/rust-lang/rust/issues/83310> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(must_not_suspend)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `multiple_supertrait_upcastable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `multiple_supertrait_upcastable` lint is unstable
[INFO] [stdout]   = note: see issue #150833 <https://github.com/rust-lang/rust/issues/150833> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(multiple_supertrait_upcastable)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `lossy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `lossy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `fuzzy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `fuzzy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_date` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_date.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_date;
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentDate`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_time` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_time.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_time;
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_timestamp` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_timestamp.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_timestamp;
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTimestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sq3ParserError`
[INFO] [stdout]  --> src/stmt/update.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{result::ParserResult, Sq3ParserError};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::keyword::KeywordUpdate`
[INFO] [stdout]   --> src/stmt/update.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         use crate::keyword::KeywordUpdate;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stmt/select/parser/result_column.rs:116:26
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub(crate) fn finish(mut self) -> ParserResult<ResultColumns<'a>> {
[INFO] [stdout]     |                          ----^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/stmt/update.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub(crate) fn update(mut self) -> ParserResult<UpdateParser<'a, Complete>> {
[INFO] [stdout]    |                          ----^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TableName<'a>` is more private than the item `SelectStmt::origin`
[INFO] [stdout]   --> src/stmt/select.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub(crate) origin: Option<TableName<'a>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `SelectStmt::origin` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/stmt/select.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TableName<'a>(&'a str);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TableName<'a>` is more private than the item `ResultColumns::AllColumnsDotTable::0`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stdout]    |                        ^^^^^^^^^^^^^ field `ResultColumns::AllColumnsDotTable::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/stmt/select.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TableName<'a>(&'a str);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/explain.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct ExplainStmt<'a> {
[INFO] [stdout]   |                   ----------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ExplainStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tilde` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Tilde;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plus` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Plus;
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Minus` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Minus;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Multiplication` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Multiplication;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Percent` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Percent;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeftParenthesis` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct LeftParenthesis;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RightParenthesis` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct RightParenthesis;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_inner` is never used
[INFO] [stdout]    --> src/keyword.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl Keyword {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn into_inner(self) -> Box<dyn Any> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NumericLiteral` is never used
[INFO] [stdout]  --> src/literal_value/parser.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(super) enum NumericLiteral {
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LiteralParser` is never constructed
[INFO] [stdout]   --> src/literal_value/parser.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) struct LiteralParser<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/literal_value/parser.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a> LiteralParser<'a> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(input: &'a str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn run(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn parse_hex(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn parse_float(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn parse_integer(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn advance(&mut self) -> Option<char> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn current_slice(&self) -> &'a str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sqlite_hex_to_i64` is never used
[INFO] [stdout]   --> src/literal_value/parser.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn parse_sqlite_hex_to_i64(hex_str: &str) -> ParserResult<i64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Digit` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(super) trait Digit {}
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HexDigit` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(super) trait HexDigit {}
[INFO] [stdout]   |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NumericLiteral` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(super) trait NumericLiteral: Digit + HexDigit {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LiteralValue` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) trait LiteralValue: NumericLiteral {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SqliteStmt` is never used
[INFO] [stdout]   --> src/stmt.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub trait SqliteStmt: Debug {}
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/delete.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct DeleteStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DeleteStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/insert.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct InsertStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `InsertStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `where_expr` and `expr` are never read
[INFO] [stdout]   --> src/stmt/select.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) struct SelectStmt<'a> {
[INFO] [stdout]    |                   ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) r#where_expr: Option<SqliteExpression>,
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 43 |     // TODO
[INFO] [stdout] 44 |     pub(crate) expr: Option<SqliteExpression>,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AllColumnsDotTable` and `Expr` are never constructed
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) enum ResultColumns<'a> {
[INFO] [stdout]    |                 ------------- variants in this enum
[INFO] [stdout]  9 |     AllColumns,
[INFO] [stdout] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     Expr(SqliteExpression),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResultColumns` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `advance` and `consume_whitespace` are never used
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl<'a, S: ResultColumnParserState> ResultColumnParser<'a, S> {
[INFO] [stdout]    | -------------------------------------------------------------- methods in this implementation
[INFO] [stdout] 79 |     fn advance(&mut self, n: usize) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn consume_whitespace(&mut self) -> ParserResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/update.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct UpdateStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `UpdateStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SqliteClause` is never used
[INFO] [stdout]   --> src/traits.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) trait SqliteClause: SqliteKeyword {}
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_any` and `to_any` are never used
[INFO] [stdout]   --> src/traits.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) trait SqliteKeyword: Display + Debug {
[INFO] [stdout]    |                  ------------- methods in this trait
[INFO] [stdout] 14 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 15 |     fn to_any(self) -> Box<dyn Any>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeterminationOfInputData` is never used
[INFO] [stdout]   --> src/traits.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(super) trait DeterminationOfInputData: SqliteKeyword {}
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.97s
[INFO] running `Command { std: "docker" "inspect" "f010e90d319522f72aa71d68ae37f86a4f390c794fa7a62dcf9557aaf32a19e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f010e90d319522f72aa71d68ae37f86a4f390c794fa7a62dcf9557aaf32a19e7", kill_on_drop: false }`
[INFO] [stdout] f010e90d319522f72aa71d68ae37f86a4f390c794fa7a62dcf9557aaf32a19e7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d3acd70798a79e4957f679c7a1cb9c458352969a8c4022c926e8304097b8b91c
[INFO] running `Command { std: "docker" "start" "-a" "d3acd70798a79e4957f679c7a1cb9c458352969a8c4022c926e8304097b8b91c", kill_on_drop: false }`
[INFO] [stdout] warning: unknown lint: `non_exhaustive_omitted_patterns`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `non_exhaustive_omitted_patterns` lint is unstable
[INFO] [stdout]   = note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `must_not_suspend`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `must_not_suspend` lint is unstable
[INFO] [stdout]   = note: see issue #83310 <https://github.com/rust-lang/rust/issues/83310> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(must_not_suspend)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `multiple_supertrait_upcastable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `multiple_supertrait_upcastable` lint is unstable
[INFO] [stdout]   = note: see issue #150833 <https://github.com/rust-lang/rust/issues/150833> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(multiple_supertrait_upcastable)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `lossy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `lossy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `fuzzy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `fuzzy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling sq3_parser v0.3.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unknown lint: `non_exhaustive_omitted_patterns`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `non_exhaustive_omitted_patterns` lint is unstable
[INFO] [stdout]   = note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `must_not_suspend`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `must_not_suspend` lint is unstable
[INFO] [stdout]   = note: see issue #83310 <https://github.com/rust-lang/rust/issues/83310> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(must_not_suspend)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `multiple_supertrait_upcastable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `multiple_supertrait_upcastable` lint is unstable
[INFO] [stdout]   = note: see issue #150833 <https://github.com/rust-lang/rust/issues/150833> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(multiple_supertrait_upcastable)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `lossy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `lossy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `fuzzy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `fuzzy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_date` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_date.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_date;
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentDate`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_time` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_time.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_time;
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_timestamp` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_timestamp.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_timestamp;
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTimestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sq3ParserError`
[INFO] [stdout]  --> src/stmt/update.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{result::ParserResult, Sq3ParserError};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::keyword::KeywordUpdate`
[INFO] [stdout]   --> src/stmt/update.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         use crate::keyword::KeywordUpdate;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `non_exhaustive_omitted_patterns`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `non_exhaustive_omitted_patterns` lint is unstable
[INFO] [stdout]   = note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `must_not_suspend`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `must_not_suspend` lint is unstable
[INFO] [stdout]   = note: see issue #83310 <https://github.com/rust-lang/rust/issues/83310> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(must_not_suspend)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `multiple_supertrait_upcastable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `multiple_supertrait_upcastable` lint is unstable
[INFO] [stdout]   = note: see issue #150833 <https://github.com/rust-lang/rust/issues/150833> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(multiple_supertrait_upcastable)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `lossy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `lossy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `fuzzy_provenance_casts`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the `fuzzy_provenance_casts` lint is unstable
[INFO] [stdout]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stdout]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stdout]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_date` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_date.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_date;
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentDate`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_time` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_time.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_time;
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Current_timestamp` should have an upper camel case name
[INFO] [stdout]  --> src/keyword/current_timestamp.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Current_timestamp;
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTimestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sq3ParserError`
[INFO] [stdout]  --> src/stmt/update.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{result::ParserResult, Sq3ParserError};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::keyword::KeywordUpdate`
[INFO] [stdout]   --> src/stmt/update.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         use crate::keyword::KeywordUpdate;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected`
[INFO] [stdout]  --> src/stmt/select/parser/tests.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let expected = vec!["id", "name"];
[INFO] [stdout]   |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_column`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let result_column = parser.finish()?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stmt/select/parser/result_column.rs:116:26
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub(crate) fn finish(mut self) -> ParserResult<ResultColumns<'a>> {
[INFO] [stdout]     |                          ----^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stmt/select/parser/result_column.rs:116:26
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub(crate) fn finish(mut self) -> ParserResult<ResultColumns<'a>> {
[INFO] [stdout]     |                          ----^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/stmt/update.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub(crate) fn update(mut self) -> ParserResult<UpdateParser<'a, Complete>> {
[INFO] [stdout]    |                          ----^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/stmt/update.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub(crate) fn update(mut self) -> ParserResult<UpdateParser<'a, Complete>> {
[INFO] [stdout]    |                          ----^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TableName<'a>` is more private than the item `SelectStmt::origin`
[INFO] [stdout]   --> src/stmt/select.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub(crate) origin: Option<TableName<'a>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `SelectStmt::origin` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/stmt/select.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TableName<'a>(&'a str);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TableName<'a>` is more private than the item `ResultColumns::AllColumnsDotTable::0`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stdout]    |                        ^^^^^^^^^^^^^ field `ResultColumns::AllColumnsDotTable::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/stmt/select.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TableName<'a>(&'a str);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/explain.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct ExplainStmt<'a> {
[INFO] [stdout]   |                   ----------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ExplainStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_inner` is never used
[INFO] [stdout]    --> src/keyword.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl Keyword {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn into_inner(self) -> Box<dyn Any> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `char_indices`, `current_index`, and `parsed` are never read
[INFO] [stdout]   --> src/literal_value/parser.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) struct LiteralParser<'a> {
[INFO] [stdout]    |                   ------------- fields in this struct
[INFO] [stdout] 14 |     input: &'a str,
[INFO] [stdout] 15 |     char_indices: std::str::CharIndices<'a>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     current_index: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     parsed: Option<&'a str>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `advance` and `current_slice` are never used
[INFO] [stdout]   --> src/literal_value/parser.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a> LiteralParser<'a> {
[INFO] [stdout]    | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn advance(&mut self) -> Option<char> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn current_slice(&self) -> &'a str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Digit` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(super) trait Digit {}
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HexDigit` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(super) trait HexDigit {}
[INFO] [stdout]   |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NumericLiteral` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(super) trait NumericLiteral: Digit + HexDigit {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LiteralValue` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) trait LiteralValue: NumericLiteral {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SqliteStmt` is never used
[INFO] [stdout]   --> src/stmt.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub trait SqliteStmt: Debug {}
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/delete.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct DeleteStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DeleteStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/insert.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct InsertStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `InsertStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `where_expr` and `expr` are never read
[INFO] [stdout]   --> src/stmt/select.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) struct SelectStmt<'a> {
[INFO] [stdout]    |                   ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) r#where_expr: Option<SqliteExpression>,
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 43 |     // TODO
[INFO] [stdout] 44 |     pub(crate) expr: Option<SqliteExpression>,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AllColumnsDotTable` and `Expr` are never constructed
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) enum ResultColumns<'a> {
[INFO] [stdout]    |                 ------------- variants in this enum
[INFO] [stdout]  9 |     AllColumns,
[INFO] [stdout] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     Expr(SqliteExpression),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResultColumns` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `advance` and `consume_whitespace` are never used
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl<'a, S: ResultColumnParserState> ResultColumnParser<'a, S> {
[INFO] [stdout]    | -------------------------------------------------------------- methods in this implementation
[INFO] [stdout] 79 |     fn advance(&mut self, n: usize) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn consume_whitespace(&mut self) -> ParserResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/update.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct UpdateStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `UpdateStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SqliteClause` is never used
[INFO] [stdout]   --> src/traits.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) trait SqliteClause: SqliteKeyword {}
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_any` and `to_any` are never used
[INFO] [stdout]   --> src/traits.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) trait SqliteKeyword: Display + Debug {
[INFO] [stdout]    |                  ------------- methods in this trait
[INFO] [stdout] 14 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 15 |     fn to_any(self) -> Box<dyn Any>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeterminationOfInputData` is never used
[INFO] [stdout]   --> src/traits.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(super) trait DeterminationOfInputData: SqliteKeyword {}
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TableName<'a>` is more private than the item `SelectStmt::origin`
[INFO] [stdout]   --> src/stmt/select.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub(crate) origin: Option<TableName<'a>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `SelectStmt::origin` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/stmt/select.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TableName<'a>(&'a str);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TableName<'a>` is more private than the item `ResultColumns::AllColumnsDotTable::0`
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stdout]    |                        ^^^^^^^^^^^^^ field `ResultColumns::AllColumnsDotTable::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/stmt/select.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TableName<'a>(&'a str);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/explain.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct ExplainStmt<'a> {
[INFO] [stdout]   |                   ----------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ExplainStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tilde` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Tilde;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plus` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Plus;
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Minus` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Minus;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Multiplication` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Multiplication;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Percent` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Percent;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeftParenthesis` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct LeftParenthesis;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RightParenthesis` is never constructed
[INFO] [stdout]   --> src/expression/operators.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct RightParenthesis;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_inner` is never used
[INFO] [stdout]    --> src/keyword.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl Keyword {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn into_inner(self) -> Box<dyn Any> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NumericLiteral` is never used
[INFO] [stdout]  --> src/literal_value/parser.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(super) enum NumericLiteral {
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LiteralParser` is never constructed
[INFO] [stdout]   --> src/literal_value/parser.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) struct LiteralParser<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/literal_value/parser.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a> LiteralParser<'a> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(input: &'a str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn run(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn parse_hex(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn parse_float(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn parse_integer(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn advance(&mut self) -> Option<char> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn current_slice(&self) -> &'a str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sqlite_hex_to_i64` is never used
[INFO] [stdout]   --> src/literal_value/parser.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn parse_sqlite_hex_to_i64(hex_str: &str) -> ParserResult<i64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Digit` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(super) trait Digit {}
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HexDigit` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(super) trait HexDigit {}
[INFO] [stdout]   |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NumericLiteral` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(super) trait NumericLiteral: Digit + HexDigit {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LiteralValue` is never used
[INFO] [stdout]  --> src/literal_value/traits.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) trait LiteralValue: NumericLiteral {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SqliteStmt` is never used
[INFO] [stdout]   --> src/stmt.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub trait SqliteStmt: Debug {}
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/delete.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct DeleteStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DeleteStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/insert.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct InsertStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `InsertStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `where_expr` and `expr` are never read
[INFO] [stdout]   --> src/stmt/select.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) struct SelectStmt<'a> {
[INFO] [stdout]    |                   ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) r#where_expr: Option<SqliteExpression>,
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 43 |     // TODO
[INFO] [stdout] 44 |     pub(crate) expr: Option<SqliteExpression>,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AllColumnsDotTable` and `Expr` are never constructed
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) enum ResultColumns<'a> {
[INFO] [stdout]    |                 ------------- variants in this enum
[INFO] [stdout]  9 |     AllColumns,
[INFO] [stdout] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     Expr(SqliteExpression),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResultColumns` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `advance` and `consume_whitespace` are never used
[INFO] [stdout]   --> src/stmt/select/parser/result_column.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl<'a, S: ResultColumnParserState> ResultColumnParser<'a, S> {
[INFO] [stdout]    | -------------------------------------------------------------- methods in this implementation
[INFO] [stdout] 79 |     fn advance(&mut self, n: usize) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn consume_whitespace(&mut self) -> ParserResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/stmt/update.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct UpdateStmt<'a> {
[INFO] [stdout]   |                   ---------- field in this struct
[INFO] [stdout] 7 |     input: &'a str, // TODO
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `UpdateStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SqliteClause` is never used
[INFO] [stdout]   --> src/traits.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) trait SqliteClause: SqliteKeyword {}
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_any` and `to_any` are never used
[INFO] [stdout]   --> src/traits.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) trait SqliteKeyword: Display + Debug {
[INFO] [stdout]    |                  ------------- methods in this trait
[INFO] [stdout] 14 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 15 |     fn to_any(self) -> Box<dyn Any>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeterminationOfInputData` is never used
[INFO] [stdout]   --> src/traits.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(super) trait DeterminationOfInputData: SqliteKeyword {}
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.56s
[INFO] running `Command { std: "docker" "inspect" "d3acd70798a79e4957f679c7a1cb9c458352969a8c4022c926e8304097b8b91c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d3acd70798a79e4957f679c7a1cb9c458352969a8c4022c926e8304097b8b91c", kill_on_drop: false }`
[INFO] [stdout] d3acd70798a79e4957f679c7a1cb9c458352969a8c4022c926e8304097b8b91c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c931d9d55c7450259df6429656148f1d65c056b46cabd85d4d22beb62c4ecd90
[INFO] running `Command { std: "docker" "start" "-a" "c931d9d55c7450259df6429656148f1d65c056b46cabd85d4d22beb62c4ecd90", kill_on_drop: false }`
[INFO] [stderr] warning: unknown lint: `non_exhaustive_omitted_patterns`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `non_exhaustive_omitted_patterns` lint is unstable
[INFO] [stderr]   = note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `must_not_suspend`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `must_not_suspend` lint is unstable
[INFO] [stderr]   = note: see issue #83310 <https://github.com/rust-lang/rust/issues/83310> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(must_not_suspend)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `multiple_supertrait_upcastable`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `multiple_supertrait_upcastable` lint is unstable
[INFO] [stderr]   = note: see issue #150833 <https://github.com/rust-lang/rust/issues/150833> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(multiple_supertrait_upcastable)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `lossy_provenance_casts`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `lossy_provenance_casts` lint is unstable
[INFO] [stderr]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `fuzzy_provenance_casts`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `fuzzy_provenance_casts` lint is unstable
[INFO] [stderr]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: `sq3_parser` (build script) generated 5 warnings
[INFO] [stderr]    Compiling sq3_parser v0.3.3 (/opt/rustwide/workdir)
[INFO] [stderr] warning: type `Current_date` should have an upper camel case name
[INFO] [stderr]  --> src/keyword/current_date.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Current_date;
[INFO] [stderr]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentDate`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `Current_time` should have an upper camel case name
[INFO] [stderr]  --> src/keyword/current_time.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Current_time;
[INFO] [stderr]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTime`
[INFO] [stderr] 
[INFO] [stderr] warning: type `Current_timestamp` should have an upper camel case name
[INFO] [stderr]  --> src/keyword/current_timestamp.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Current_timestamp;
[INFO] [stderr]   |                   ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTimestamp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Sq3ParserError`
[INFO] [stderr]  --> src/stmt/update.rs:3:35
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::{result::ParserResult, Sq3ParserError};
[INFO] [stderr]   |                                   ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::keyword::KeywordUpdate`
[INFO] [stderr]   --> src/stmt/update.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |         use crate::keyword::KeywordUpdate;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_column`
[INFO] [stderr]   --> src/stmt/select/parser/result_column.rs:20:17
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let result_column = parser.finish()?;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_column`
[INFO] [stderr]   --> src/stmt/select/parser/result_column.rs:25:17
[INFO] [stderr]    |
[INFO] [stderr] 25 |             let result_column = parser.finish()?;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_column`
[INFO] [stderr]   --> src/stmt/select/parser/result_column.rs:30:17
[INFO] [stderr]    |
[INFO] [stderr] 30 |             let result_column = parser.finish()?;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/stmt/select/parser/result_column.rs:116:26
[INFO] [stderr]     |
[INFO] [stderr] 116 |     pub(crate) fn finish(mut self) -> ParserResult<ResultColumns<'a>> {
[INFO] [stderr]     |                          ----^^^^
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/stmt/update.rs:41:26
[INFO] [stderr]    |
[INFO] [stderr] 41 |     pub(crate) fn update(mut self) -> ParserResult<UpdateParser<'a, Complete>> {
[INFO] [stderr]    |                          ----^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: type `TableName<'a>` is more private than the item `SelectStmt::origin`
[INFO] [stderr]   --> src/stmt/select.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub(crate) origin: Option<TableName<'a>>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `SelectStmt::origin` is reachable at visibility `pub(crate)`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stderr]   --> src/stmt/select.rs:48:1
[INFO] [stderr]    |
[INFO] [stderr] 48 | struct TableName<'a>(&'a str);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `TableName<'a>` is more private than the item `ResultColumns::AllColumnsDotTable::0`
[INFO] [stderr]   --> src/stmt/select/parser/result_column.rs:10:24
[INFO] [stderr]    |
[INFO] [stderr] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stderr]    |                        ^^^^^^^^^^^^^ field `ResultColumns::AllColumnsDotTable::0` is reachable at visibility `pub(crate)`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `TableName<'a>` is only usable at visibility `pub(self)`
[INFO] [stderr]   --> src/stmt/select.rs:48:1
[INFO] [stderr]    |
[INFO] [stderr] 48 | struct TableName<'a>(&'a str);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `input` is never read
[INFO] [stderr]  --> src/explain.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct ExplainStmt<'a> {
[INFO] [stderr]   |                   ----------- field in this struct
[INFO] [stderr] 7 |     input: &'a str, // TODO
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `ExplainStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Tilde` is never constructed
[INFO] [stderr]   --> src/expression/operators.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct Tilde;
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Plus` is never constructed
[INFO] [stderr]   --> src/expression/operators.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct Plus;
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Minus` is never constructed
[INFO] [stderr]   --> src/expression/operators.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct Minus;
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Multiplication` is never constructed
[INFO] [stderr]   --> src/expression/operators.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct Multiplication;
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Percent` is never constructed
[INFO] [stderr]   --> src/expression/operators.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub struct Percent;
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LeftParenthesis` is never constructed
[INFO] [stderr]   --> src/expression/operators.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct LeftParenthesis;
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RightParenthesis` is never constructed
[INFO] [stderr]   --> src/expression/operators.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct RightParenthesis;
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `into_inner` is never used
[INFO] [stderr]    --> src/keyword.rs:227:12
[INFO] [stderr]     |
[INFO] [stderr] 223 | impl Keyword {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 227 |     pub fn into_inner(self) -> Box<dyn Any> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `NumericLiteral` is never used
[INFO] [stderr]  --> src/literal_value/parser.rs:7:17
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub(super) enum NumericLiteral {
[INFO] [stderr]   |                 ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LiteralParser` is never constructed
[INFO] [stderr]   --> src/literal_value/parser.rs:13:19
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub(super) struct LiteralParser<'a> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> src/literal_value/parser.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl<'a> LiteralParser<'a> {
[INFO] [stderr]    | -------------------------- associated items in this implementation
[INFO] [stderr] 21 |     pub fn new(input: &'a str) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn run(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     fn parse_hex(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52 |     fn parse_float(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     fn parse_integer(&mut self) -> ParserResult<NumericLiteral> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |     fn advance(&mut self) -> Option<char> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     fn current_slice(&self) -> &'a str {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_sqlite_hex_to_i64` is never used
[INFO] [stderr]   --> src/literal_value/parser.rs:75:4
[INFO] [stderr]    |
[INFO] [stderr] 75 | fn parse_sqlite_hex_to_i64(hex_str: &str) -> ParserResult<i64> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Digit` is never used
[INFO] [stderr]  --> src/literal_value/traits.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub(super) trait Digit {}
[INFO] [stderr]   |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `HexDigit` is never used
[INFO] [stderr]  --> src/literal_value/traits.rs:2:18
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub(super) trait HexDigit {}
[INFO] [stderr]   |                  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `NumericLiteral` is never used
[INFO] [stderr]  --> src/literal_value/traits.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub(super) trait NumericLiteral: Digit + HexDigit {}
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `LiteralValue` is never used
[INFO] [stderr]  --> src/literal_value/traits.rs:6:18
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(super) trait LiteralValue: NumericLiteral {}
[INFO] [stderr]   |                  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SqliteStmt` is never used
[INFO] [stderr]   --> src/stmt.rs:40:11
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub trait SqliteStmt: Debug {}
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `input` is never read
[INFO] [stderr]  --> src/stmt/delete.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct DeleteStmt<'a> {
[INFO] [stderr]   |                   ---------- field in this struct
[INFO] [stderr] 7 |     input: &'a str, // TODO
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `DeleteStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `input` is never read
[INFO] [stderr]  --> src/stmt/insert.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct InsertStmt<'a> {
[INFO] [stderr]   |                   ---------- field in this struct
[INFO] [stderr] 7 |     input: &'a str, // TODO
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `InsertStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `where_expr` and `expr` are never read
[INFO] [stderr]   --> src/stmt/select.rs:42:16
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub(crate) struct SelectStmt<'a> {
[INFO] [stderr]    |                   ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub(crate) r#where_expr: Option<SqliteExpression>,
[INFO] [stderr]    |                ^^^^^^^^^^^^
[INFO] [stderr] 43 |     // TODO
[INFO] [stderr] 44 |     pub(crate) expr: Option<SqliteExpression>,
[INFO] [stderr]    |                ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SelectStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `AllColumnsDotTable` and `Expr` are never constructed
[INFO] [stderr]   --> src/stmt/select/parser/result_column.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub(crate) enum ResultColumns<'a> {
[INFO] [stderr]    |                 ------------- variants in this enum
[INFO] [stderr]  9 |     AllColumns,
[INFO] [stderr] 10 |     AllColumnsDotTable(TableName<'a>),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 11 |     Expr(SqliteExpression),
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ResultColumns` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `advance` and `consume_whitespace` are never used
[INFO] [stderr]   --> src/stmt/select/parser/result_column.rs:79:8
[INFO] [stderr]    |
[INFO] [stderr] 78 | impl<'a, S: ResultColumnParserState> ResultColumnParser<'a, S> {
[INFO] [stderr]    | -------------------------------------------------------------- methods in this implementation
[INFO] [stderr] 79 |     fn advance(&mut self, n: usize) {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     fn consume_whitespace(&mut self) -> ParserResult<()> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `input` is never read
[INFO] [stderr]  --> src/stmt/update.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct UpdateStmt<'a> {
[INFO] [stderr]   |                   ---------- field in this struct
[INFO] [stderr] 7 |     input: &'a str, // TODO
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `UpdateStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SqliteClause` is never used
[INFO] [stderr]   --> src/traits.rs:11:18
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub(super) trait SqliteClause: SqliteKeyword {}
[INFO] [stderr]    |                  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `as_any` and `to_any` are never used
[INFO] [stderr]   --> src/traits.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub(super) trait SqliteKeyword: Display + Debug {
[INFO] [stderr]    |                  ------------- methods in this trait
[INFO] [stderr] 14 |     fn as_any(&self) -> &dyn Any;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 15 |     fn to_any(self) -> Box<dyn Any>;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `DeterminationOfInputData` is never used
[INFO] [stderr]   --> src/traits.rs:62:18
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub(super) trait DeterminationOfInputData: SqliteKeyword {}
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expected`
[INFO] [stderr]  --> src/stmt/select/parser/tests.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let expected = vec!["id", "name"];
[INFO] [stderr]   |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_column`
[INFO] [stderr]   --> src/stmt/select/parser/result_column.rs:20:17
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let result_column = parser.finish()?;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_column`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `char_indices`, `current_index`, and `parsed` are never read
[INFO] [stderr]   --> src/literal_value/parser.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub(super) struct LiteralParser<'a> {
[INFO] [stderr]    |                   ------------- fields in this struct
[INFO] [stderr] 14 |     input: &'a str,
[INFO] [stderr] 15 |     char_indices: std::str::CharIndices<'a>,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 16 |     current_index: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 17 |     parsed: Option<&'a str>,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `advance` and `current_slice` are never used
[INFO] [stderr]   --> src/literal_value/parser.rs:60:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl<'a> LiteralParser<'a> {
[INFO] [stderr]    | -------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 60 |     fn advance(&mut self) -> Option<char> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     fn current_slice(&self) -> &'a str {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `sq3_parser` (lib) generated 44 warnings (5 duplicates) (run `cargo fix --lib -p sq3_parser` to apply 7 suggestions)
[INFO] [stdout] 
[INFO] [stderr] warning: `sq3_parser` (lib test) generated 36 warnings (32 duplicates) (run `cargo fix --lib -p sq3_parser --tests` to apply 2 suggestions)
[INFO] [stdout] running 23 tests
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.53s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sq3_parser-b9044870b98608d1)
[INFO] [stdout] test expression::operators::tests::err_on_parse_left_parenthesis ... ok
[INFO] [stdout] test expression::operators::tests::err_on_parse_minus ... ok
[INFO] [stdout] test expression::operators::tests::err_on_parse_multiplication ... ok
[INFO] [stdout] test expression::operators::tests::err_on_parse_plus ... ok
[INFO] [stdout] test expression::operators::tests::err_on_parse_right_parenthesis ... ok
[INFO] [stdout] test expression::operators::tests::err_on_parse_tilde ... ok
[INFO] [stdout] test expression::operators::tests::ok_on_parse_minus ... ok
[INFO] [stdout] test expression::operators::tests::ok_on_parse_multiplication ... ok
[INFO] [stdout] test expression::operators::tests::ok_on_parse_plus ... ok
[INFO] [stdout] test expression::operators::tests::ok_on_parse_right_parenthesis ... ok
[INFO] [stdout] test expression::operators::tests::ok_on_parse_tilde ... ok
[INFO] [stdout] test keyword::tests::err_on_parse_invalid_keyword ... ok
[INFO] [stdout] test stmt::select::parser::tests::ok_on_test_result_column_parser ... ignored, Todo
[INFO] [stdout] test expression::operators::tests::ok_on_parse_left_parenthesis ... ok
[INFO] [stdout] test literal_value::parser::tests::ok_on_parse_valid_numeric_literals ... ok
[INFO] [stdout] test literal_value::parser::tests::err_on_parse_invalid ... ok
[INFO] [stdout] test tests::query::err_on_run_blind_invalid_queries ... ignored, Todo
[INFO] [stdout] test tests::query::ok_on_parse_blind_valid_queries ... ignored, Todo
[INFO] [stdout] test stmt::select::parser::tests::ok_on_test_result_column_parser_all_columns ... ok
[INFO] [stdout] test stmt::select::parser::tests::ok_on_test_select_parser ... ok
[INFO] [stdout] test expression::operators::tests::ok_on_parse_percent ... ok
[INFO] [stdout] test expression::operators::tests::err_on_parse_percent ... ok
[INFO] [stdout] test keyword::tests::ok_on_parse_all_keywords ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests sq3_parser
[INFO] [stderr] warning: unknown lint: `non_exhaustive_omitted_patterns`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `non_exhaustive_omitted_patterns` lint is unstable
[INFO] [stderr]   = note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `must_not_suspend`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `must_not_suspend` lint is unstable
[INFO] [stderr]   = note: see issue #83310 <https://github.com/rust-lang/rust/issues/83310> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(must_not_suspend)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `multiple_supertrait_upcastable`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `multiple_supertrait_upcastable` lint is unstable
[INFO] [stderr]   = note: see issue #150833 <https://github.com/rust-lang/rust/issues/150833> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(multiple_supertrait_upcastable)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `lossy_provenance_casts`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `lossy_provenance_casts` lint is unstable
[INFO] [stderr]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `fuzzy_provenance_casts`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the `fuzzy_provenance_casts` lint is unstable
[INFO] [stderr]   = note: see issue #130351 <https://github.com/rust-lang/rust/issues/130351> for more information
[INFO] [stderr]   = help: add `-Zcrate-attr="feature(strict_provenance_lints)"` to the command-line options to enable
[INFO] [stderr]   = note: this compiler was built on 2026-03-19; consider upgrading it if it is out of date
[INFO] [stderr] 
[INFO] [stderr] warning: type `Current_date` should have an upper camel case name
[INFO] [stderr]  --> src/keyword/current_date.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Current_date;
[INFO] [stderr]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentDate`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `Current_time` should have an upper camel case name
[INFO] [stderr]  --> src/keyword/current_time.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Current_time;
[INFO] [stderr]   |                   ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTime`
[INFO] [stderr] 
[INFO] [stderr] warning: type `Current_timestamp` should have an upper camel case name
[INFO] [stderr]  --> src/keyword/current_timestamp.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Current_timestamp;
[INFO] [stderr]   |                   ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CurrentTimestamp`
[INFO] [stderr] 
[INFO] [stderr] warning: 8 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "c931d9d55c7450259df6429656148f1d65c056b46cabd85d4d22beb62c4ecd90", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c931d9d55c7450259df6429656148f1d65c056b46cabd85d4d22beb62c4ecd90", kill_on_drop: false }`
[INFO] [stdout] c931d9d55c7450259df6429656148f1d65c056b46cabd85d4d22beb62c4ecd90
